package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.CheckGroup;
import com.itheima.pojo.Role;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface RoleDao {

    public Set<Role> findByUserId(Integer userId);

    //分页查询
    Page<Role> findByCondition(String queryString);

    //查询所有角色
    List<Role> findAll();

    //根据id查询角色
    Role findById(Integer id);

    //根据角色id查询角色下的权限id
    List<Integer> findPermissionIdsByRoleId(Integer id);
    //根据角色id查询角色下的菜单id
    List<Integer> findMenuIdsByRoleId(Integer id);

    //添加角色
    void add(Role role);

    //编辑角色
    void edit(Role role);
    void deletePermissionByRoleId(Integer id);
    void deleteMenuByRoleId(Integer id);

    void setRoleAndPermission(Map<String, Integer> map);
    void setRoleAndMenu(Map<String, Integer> map);

    //根据id删除角色
    void deleteById(Integer id);
    //判断当前角色是否已经关联到权限、菜单、用户
    long findPermissionCountByroleId(Integer id);
    long findMenuCountByroleId(Integer id);
    long findUserCountByroleId(Integer id);

}
